{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import VotingRegressor\n",
    "import lightgbm as lgb\n",
    "from sklearn.metrics import mean_squared_error, mean_absolute_error\n",
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_parameters = {\n",
    "    \"n_estimators\": 1000,\n",
    "    \"learning_rate\": 0.052587652,\n",
    "    \"colsample_bytree\": 0.9,\n",
    "    \"colsample_bynode\": 0.6,\n",
    "    \"lambda_l1\": 3.5,\n",
    "    \"lambda_l2\": 1.5,\n",
    "    \"max_depth\": 32,\n",
    "    \"num_leaves\": 100,\n",
    "    \"min_data_in_leaf\": 50,\n",
    "    \"objective\": \"regression_l1\",\n",
    "    \"device\": \"cpu\",\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 可变参数\n",
    "file_path = '/home/duxiangyu/data/turbine_data/data_with_turbine_features/processed_data'\n",
    "turbine = 1\n",
    "shift_num = 12\n",
    "\n",
    "turbine_number = f\"{turbine:03d}\"\n",
    "file_path = f\"{file_path}/WuXingLing_WuXingLing{turbine_number}_20231105000000_20231107000000_SCADA温数据.csv\"\n",
    "X = pd.read_csv(file_path)\n",
    "\n",
    "# 创建一个空的 DataFrame 用于存储所有的shift列\n",
    "shifted_features = pd.DataFrame()\n",
    "\n",
    "# 对每一列进行shift操作并添加到新的DataFrame中\n",
    "for i in range(1, shift_num + 1):\n",
    "    shifted_X = X.shift(i)\n",
    "    shifted_X.columns = [f'{col}_lag_{i}' for col in X.columns]\n",
    "    shifted_features = pd.concat([shifted_features, shifted_X], axis=1)\n",
    "\n",
    "base_y = X['speed'].shift(1).tolist()\n",
    "\n",
    "# 合并原始特征和shift特征\n",
    "X = pd.concat([X, shifted_features], axis=1)\n",
    "y = X['dspeed'].tolist()\n",
    "X = X.drop(columns=['u', 'v', 'speed', 'direct', 'du', 'dv', 'dspeed', 'ddirect'])\n",
    "X = X.to_numpy(dtype=np.float32)\n",
    "X_train = X[:int(len(X) * 0.8)]\n",
    "y_train = y[:len(X_train)]\n",
    "X_test = X[-int(len(X) * 0.1):]\n",
    "y_test = y[-len(X_test):]\n",
    "base_y = base_y[-len(X_test):]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.009114 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.007526 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.007177 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.006176 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.006051 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.006134 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.006171 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.006473 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.005888 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.005867 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.005952 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Info] Auto-choosing col-wise multi-threading, the overhead of testing was 0.006204 seconds.\n",
      "You can set `force_col_wise=true` to remove the overhead.\n",
      "[LightGBM] [Info] Total Bins 24480\n",
      "[LightGBM] [Info] Number of data points in the train set: 138240, number of used features: 96\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>VotingRegressor(estimators=[(&#x27;lightgbm_0&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=0)),\n",
       "                            (&#x27;lightgbm_1&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=10)),\n",
       "                            (&#x27;lightgbm_11&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=11))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;VotingRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.ensemble.VotingRegressor.html\">?<span>Documentation for VotingRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>VotingRegressor(estimators=[(&#x27;lightgbm_0&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=0)),\n",
       "                            (&#x27;lightgbm_1&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=10)),\n",
       "                            (&#x27;lightgbm_11&#x27;,\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective=&#x27;regression_l1&#x27;,\n",
       "                                           random_state=11))])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_0</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=0)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_1</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=1)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_2</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=2)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_3</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=3)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_4</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=4)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_5</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=5)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_6</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=6)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_7</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=7)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_8</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=8)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_9</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=9)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_10</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=10)</pre></div> </div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><label>lightgbm_11</label></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">LGBMRegressor</label><div class=\"sk-toggleable__content fitted\"><pre>LGBMRegressor(colsample_bynode=0.6, colsample_bytree=0.9, device=&#x27;cpu&#x27;,\n",
       "              lambda_l1=3.5, lambda_l2=1.5, learning_rate=0.052587652,\n",
       "              max_depth=32, min_data_in_leaf=50, n_estimators=1000,\n",
       "              num_leaves=100, objective=&#x27;regression_l1&#x27;, random_state=11)</pre></div> </div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "VotingRegressor(estimators=[('lightgbm_0',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device='cpu',\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=0)),\n",
       "                            ('lightgbm_1',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device...\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=10)),\n",
       "                            ('lightgbm_11',\n",
       "                             LGBMRegressor(colsample_bynode=0.6,\n",
       "                                           colsample_bytree=0.9, device='cpu',\n",
       "                                           lambda_l1=3.5, lambda_l2=1.5,\n",
       "                                           learning_rate=0.052587652,\n",
       "                                           max_depth=32, min_data_in_leaf=50,\n",
       "                                           n_estimators=1000, num_leaves=100,\n",
       "                                           objective='regression_l1',\n",
       "                                           random_state=11))])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "votingRegressor = VotingRegressor([(f'lightgbm_{i}', lgb.LGBMRegressor(**model_parameters, random_state=i)) for i in range(12)])\n",
    "votingRegressor.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "0.037272527978504555\n",
      "0.146320037757288\n",
      "17280\n"
     ]
    }
   ],
   "source": [
    "predictions = votingRegressor.predict(X_test)\n",
    "actual_values = y_test\n",
    "mse = mean_squared_error(actual_values, predictions)\n",
    "mae = mean_absolute_error(actual_values, predictions)\n",
    "print(mse)\n",
    "print(mae)\n",
    "print(len(y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACKeklEQVR4nO3dd3jTVRfA8W9a2rTQAS2bVsqeskRZIiCIsqwWoewt4GIJKoIsGYoyVRAUypIhUgRBthSKgCBLFETEsvdsWYWm9/3j9yY0nUmbNEk5n+fJU3LzGyehmsMd5+qUUgohhBBCCBfl5ugAhBBCCCGyQpIZIYQQQrg0SWaEEEII4dIkmRFCCCGES5NkRgghhBAuTZIZIYQQQrg0SWaEEEII4dIkmRFCCCGES5NkRgghhBAuTZIZIdIwffp0dDodlStXzvQ1zp8/z6hRozh48KDtAktHw4YNadiwYbbcKz0hISHodDrTw8fHh1q1arFgwYJsuf+8efPQ6XScPHnS1JbZz2b8+PH8+OOPNovN6OTJk+h0OubNm5fmMQMHDkSn0/H333+necywYcPQ6XTs37/f4nuHhITQrVs3K6IVwrlJMiNEGubOnQvAX3/9xW+//Zapa5w/f57Ro0dnWzLjTOrVq8euXbvYtWuXKbno2rUrM2fOdEg8M2bMYMaMGVafZ69kxhI9e/YEHv0uJpeYmMiCBQuoVq0aNWrUyM7QhHAqkswIkYrff/+dQ4cO0aJFCwDmzJnj4IhcT968ealduza1a9fmtddeY/369fj5+TF58uQ0zzEYDMTHx9slnooVK1KxYkW7XNteKleuzDPPPMPChQtJSEhI8frGjRs5e/asKekR4nElyYwQqTAmL5988gl169Zl6dKl3L17N8Vx586do3fv3gQHB+Pp6UnRokV57bXXuHTpElFRUTz99NMAdO/e3TTkMmrUKCDtYY9u3boREhJi1jZ69Ghq1apFQEAAfn5+1KhRgzlz5pCZfWJfeeUVihcvTmJiYorXatWqZfYv/OXLl1OrVi38/f3JnTs3JUuWpEePHlbfE7Tkply5cpw6dQp4NMwyceJExo4dS4kSJdDr9WzduhXQEsqXX36ZgIAAvLy8qF69Ot9//32K6+7evZt69erh5eVF0aJFGTp0KA8fPkxxXGqfd3x8PGPGjKFChQp4eXkRGBhIo0aN2LlzJwA6nY47d+4wf/58099f0mtcvHiRPn36EBQUhKenJyVKlGD06NEpEo/z58/Ttm1bfH198ff3Jzw8nIsXL1r0ufXs2ZOLFy+ybt26FK9FRESg1+vp2LEj9+/f591336VatWr4+/sTEBBAnTp1WLVqVYb3SG1YDiAqKgqdTkdUVJRZ++bNm2ncuDF+fn7kzp2bevXqsWXLFrNjrly5YvpvQ6/XU6BAAerVq8fmzZstet9CWCOXowMQwtncu3ePJUuW8PTTT1O5cmV69OhBr169WL58OV27djUdd+7cOZ5++mkePnzIhx9+SJUqVbh27RobNmzgxo0b1KhRg4iICLp3787w4cNNvTxBQUFWx3Ty5En69OnDE088AWhf4O+88w7nzp1jxIgRVl2rR48ehIaG8ssvv9CkSRNT+99//82ePXuYPn06ALt27SI8PJzw8HBGjRqFl5cXp06d4pdffrE6foCHDx9y6tQpChQoYNY+ffp0ypYty+eff46fnx9lypRh69atvPTSS9SqVYuvv/4af39/li5dSnh4OHfv3jXN9zhy5AiNGzcmJCSEefPmkTt3bmbMmMHixYszjCchIYFmzZoRHR3NgAEDeP7550lISGD37t2cPn2aunXrsmvXLp5//nkaNWrERx99BICfnx+gJTLPPPMMbm5ujBgxglKlSrFr1y7Gjh3LyZMniYiIALTfpyZNmnD+/HkmTJhA2bJlWbt2LeHh4RZ9bu3bt2fgwIHMnTuXVq1amdpv3LjBqlWrePXVV8mXLx+3bt3i+vXrDB48mGLFivHgwQM2b95MWFgYERERdOnSxaL7ZWTRokV06dKF0NBQ5s+fj4eHB7NmzeLFF19kw4YNNG7cGIDOnTuzf/9+xo0bR9myZbl58yb79+/n2rVrNolDCDNKCGFmwYIFClBff/21UkqpuLg45ePjo+rXr292XI8ePZSHh4c6cuRImtfau3evAlRERESK1xo0aKAaNGiQor1r166qePHiaV7TYDCohw8fqjFjxqjAwECVmJiY4TWTevjwoSpUqJDq0KGDWft7772nPD091dWrV5VSSn3++ecKUDdv3kz3eqkpXry4at68uXr48KF6+PChiomJUV27dlWAGjJkiFJKqZiYGAWoUqVKqQcPHpidX758eVW9enX18OFDs/aWLVuqIkWKKIPBoJRSKjw8XHl7e6uLFy+ajklISFDly5dXgIqJiTG1J/9sjH/P33zzTbrvJU+ePKpr164p2vv06aN8fHzUqVOnzNqNn9tff/2llFJq5syZClCrVq0yO+71119P83cjua5duyoPDw916dIlU9sXX3yhALVp06ZUz0lISFAPHz5UPXv2VNWrVzd7rXjx4mbvKSIiIsXnpZRSW7duVYDaunWrUkqpO3fuqICAANWqVSuz4wwGg6patap65plnTG0+Pj5qwIABGb43IWxBhpmESGbOnDl4e3vTrl07AHx8fGjTpg3R0dEcP37cdNy6deto1KgRFSpUsHtMxl4Uf39/3N3d8fDwYMSIEVy7do3Lly9bda1cuXLRqVMnIiMjuXXrFqDNVVm4cCGhoaEEBgYCmIbI2rZty/fff8+5c+esus/PP/+Mh4cHHh4elChRgu+//5533nmHsWPHmh338ssv4+HhYXr+77//8vfff9OxY0dA60ExPpo3b86FCxc4duwYAFu3bqVx48YUKlTIdL67u7tFvR7r1q3Dy8sr08Nma9asoVGjRhQtWtQsxmbNmgGwbds2U4y+vr68/PLLZud36NDB4nv17NmThw8fsnDhQlNbREQExYsXN/WEgDYsWK9ePXx8fMiVKxceHh7MmTOHo0ePZuo9Jrdz506uX79O165dzd5zYmIiL730Env37uXOnTsAPPPMM8ybN4+xY8eye/fuVIf+hLAVSWaESOLff/9l+/bttGjRAqUUN2/e5ObNm7z22muA+aqSK1euZGrIyFp79uyhadOmAHzzzTf8+uuv7N27l2HDhgHaMIa1evTowf3791m6dCkAGzZs4MKFC3Tv3t10zHPPPcePP/5IQkICXbp0ISgoiMqVK7NkyRKL7vHss8+yd+9efv/9d44cOcLNmzeZPn06np6eZscVKVLE7PmlS5cAGDx4sCkZMj7efPNNAK5evQrAtWvXKFy4cIp7p9aW3JUrVyhatChubpn73+ClS5f46aefUsRYqVKlFDEmTbasidGofv36lC1b1jR09ccff7B//37TXCyAyMhI2rZtS7FixVi0aBG7du1i7969pr9rWzD+3bz22msp3venn36KUorr168DsGzZMrp27cq3335LnTp1CAgIoEuXLhbPFRLCGjJnRogk5s6di1KKH374gR9++CHF6/Pnz2fs2LG4u7tToEABzp49m+l7eXl5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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 假设 predictions 和 actual_values 已经定义\n",
    "# predictions 是模型的预测值，actual_values 是真实值\n",
    "\n",
    "\n",
    "length = 1000\n",
    "actual_values = [x + y for x, y in zip(actual_values, base_y)]\n",
    "predictions = [x + y for x, y in zip(predictions, base_y)]\n",
    "\n",
    "# 创建散点图\n",
    "plt.scatter(actual_values, predictions, color='blue', label='Actual vs Predicted')\n",
    "\n",
    "# 添加标签和标题\n",
    "plt.xlabel('Actual Values')\n",
    "plt.ylabel('Predicted Values')\n",
    "plt.title('Actual vs Predicted Values')\n",
    "\n",
    "# 添加对角线，用于比较完美预测的情况\n",
    "plt.plot([min(actual_values), max(actual_values)], [min(actual_values), max(actual_values)], linestyle='--', color='red', linewidth=2, label='Perfect Prediction')\n",
    "\n",
    "# 显示图例\n",
    "plt.legend()\n",
    "\n",
    "# 显示图形\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f9201dec670>]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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Mdr9998foBGFJ0B74403XN87HA4tKytLe+ihh1z3tbS0aImJidrTTz8dgBGGn4qKCg3QVq9erWmavOf+kJycrP3973+X93qA1NfXa6NGjdKWL1+uLViwQPvBD36gaZr82x4Iv/zlL7XJkyd7PTeQ7/egnBmxWq1s2rSJRYsWedy/aNEiPv/88wCNanAoKiqirKzM4723WCwsWLBA3vt+UltbC0BKSgog7/lAstvt/Oc//6GxsZE5c+bIez1A7rjjDhYvXsx5553ncb+83wPjwIED5OTkUFBQwHXXXcfhw4eBgX2/Q6JRXn+rrKzEbreTmZnpcX9mZiZlZWUBGtXgoL+/3t77o0ePBmJIYUXTNO655x7mzZvHhAkTAHnPB8KOHTuYM2cOLS0txMXF8cYbbzBu3DjXD2R5r/vPf/7zHzZv3syGDRs6nZN/2/1v1qxZ/OMf/2D06NGUl5fz61//mrlz57Jr164Bfb8HZTCiMxgMHt9rmtbpPjEw5L0fGHfeeSfbt29n7dq1nc7Je95/CgsL2bp1KzU1NSxbtoxbbrmF1atXu87Le90/SkpK+MEPfsDHH39MVFSUz+vk/e4/F110kev2xIkTmTNnDiNGjODFF19k9uzZwMC834NymSYtLQ2TydRpFqSioqJTxCf6l56VLe99//v+97/P22+/zcqVK8nNzXXdL+95/4uMjGTkyJHMmDGDpUuXMnnyZP70pz/Je93PNm3aREVFBdOnT8dsNmM2m1m9ejWPP/44ZrPZ9Z7K+z1wYmNjmThxIgcOHBjQf9+DMhiJjIxk+vTpLF++3OP+5cuXM3fu3ACNanAoKCggKyvL4723Wq2sXr1a3vvTpGkad955J6+//jr/+9//KCgo8Dgv7/nA0zSN1tZWea/72cKFC9mxYwdbt251fc2YMYOvfe1rbN26leHDh8v7PcBaW1vZs2cP2dnZA/vvu0/pryHsP//5jxYREaE9++yz2u7du7W7775bi42N1Y4cORLooYW8+vp6bcuWLdqWLVs0QHv00Ue1LVu2aEePHtU0TdMeeughLTExUXv99de1HTt2aNdff72WnZ2t1dXVBXjkoem73/2ulpiYqK1atUorLS11fTU1Nbmukfe8/yxZskT79NNPtaKiIm379u3aT3/6U81oNGoff/yxpmnyXg+09rtpNE3e7/72ox/9SFu1apV2+PBhbf369doll1yixcfHu343DtT7PWiDEU3TtD//+c/a0KFDtcjISG3atGmurZCib1auXKkBnb5uueUWTdPU9rBf/vKXWlZWlmaxWLSzzjpL27FjR2AHHcK8vdeA9vzzz7uukfe8/9x6662unxvp6enawoULXYGIpsl7PdA6BiPyfveva6+9VsvOztYiIiK0nJwc7corr9R27drlOj9Q77dB0zStb3MrQgghhBCnb1DmjAghhBAieEgwIoQQQoiAkmBECCGEEAElwYgQQgghAkqCESGEEEIElAQjQgghhAgoCUaEEEIIEVASjAghhBAioCQYEUIIIURASTAihBBCiICSYEQIIYQQASXBiBBCCCEC6v8DDh5tOtdiVmIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "length = 50\n",
    "x = [i for i in range(length)]\n",
    "plt.plot(x, actual_values[12:length+12])\n",
    "plt.plot(x, predictions[12:length+12])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.044340457175925926\n",
      "0.1601695601851852\n"
     ]
    }
   ],
   "source": [
    "predictions = base_y\n",
    "mse = mean_squared_error(actual_values, predictions)\n",
    "mae = mean_absolute_error(actual_values, predictions)\n",
    "print(mse)\n",
    "print(mae)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(172800, 96)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=50, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=50\n",
      "[LightGBM] [Warning] lambda_l2 is set=1.5, reg_lambda=0.0 will be ignored. Current value: lambda_l2=1.5\n",
      "[LightGBM] [Warning] lambda_l1 is set=3.5, reg_alpha=0.0 will be ignored. Current value: lambda_l1=3.5\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.41435395])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([[1 for _ in range(96)]], dtype=np.float32)\n",
    "b = votingRegressor.predict(a)\n",
    "b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle\n",
    "# 保存模型\n",
    "with open('voting_regressor.pkl', 'wb') as f:\n",
    "    pickle.dump(votingRegressor, f)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "gru",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
